#ifndef DVIMPORTTABLEDIALOG_H
#define DVIMPORTTABLEDIALOG_H

#include <QDialog>
#include "dvDatabaseController.h"
#include "dvDatabaseControllerUsable.h"

namespace Ui {
class dvImportTableDialog;
}

class dvImportTableDialog : public QDialog, public dvDatabaseControllerUsable
{
    Q_OBJECT
    
public:
    explicit dvImportTableDialog(QWidget *parent = 0);
    ~dvImportTableDialog();
    void Initialize();
    inline void setMapId(int id){ m_map = id; }
    inline int  mapId(){ return m_map; }
    inline QString dateFormat(){ return m_dataFormat; }
    inline QList<QVariantList>* listOfData(){ return &m_listOfData; }
    
private:
    Ui::dvImportTableDialog *ui;

    int     m_map;
    QString m_dataFormat;
    QList<QVariantList> m_listOfData;

    QTableView *m_pTablePreview;
    QStandardItemModel *m_pTableModel;
    QComboBox  *m_pMapsList;

    void initMapsList();
    void fillTable(const QList<QStringList>& list);
    void readTableTo(QList<QVariantList>* list);
    void setRowColor(int row, QColor color);

private slots:
    void clickedMaps();
    void clickedRegions();
    void clickedBrowse();
    void clickedSettings();
    void clickedSynonyms();
    void clickedAddSynonym();
    void clickedDeleteRow();
    void clickedDeleteColumn();
    void clickedCheck();
    void clickedOk();
    void clickedCancel();
    void cellClicked(QModelIndex index);
    void currentMapChanged(int index);
};

#endif // DVIMPORTTABLEDIALOG_H
